CACAO - A 64-bit JavaVM Just-in-Time Compiler

نویسندگان

  • Andreas Krall
  • Reinhard Grafl
چکیده

This article describes the design and implementation of CACAO, a just in time compiler for Java. The CACAO system translates Java byte code on demand into native code for the ALPHA processor. During this translation process the stack oriented Java byte code is transformed into a register oriented intermediate code. Local variables and stack locations are replaced by pseudo registers eliminating the 32 bit restriction on address types. A fast register allocation algorithm is applied to map the pseudo registers to machine registers. During code generation, eld oosets are computed for proper alignment on 64 bit architectures. Even though the CACAO system has to incur loading and compilation time, it executes Java programs up to 85 times faster than the JDK interpreter, up to 7 times faster than the kaae JIT compiler. It is slightly slower than equivalent C programs compiled at the highest optimization level.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Javavm Implementation: Compilers versus Hardware

Compilers versus Hardware Andreas Krall1 and Anton Ertl1 and Michael Gschwind2 1 Institut f ur Computersprachen, Technische Universitat Wien Argentinierstra e 8, A-1040 Wien fandi,[email protected] 2 Institut f ur Technische Informatik, Technische Universitat Wien Treitlstra e 1, A-1040 Wien [email protected] Abstract. The Java Virtual Machine (JavaVM) has contributed gre...

متن کامل

Monitors and Exceptions: How to Implement Java Eeciently

EEcient implementation of monitors and exceptions is crucial for the performance of Java. One implementation of threads showed a factor of 30 diierence in run time on some benchmark programs. This article describes an eecient implementation of monitors for Java as used in the CACAO just-in-time compiler. With this implementation the thread overhead is less than 40% for typical application progr...

متن کامل

Monitors and Exceptions: How to Implement Java Efficiently

EEcient implementation of monitors and exceptions is crucial for the performance of Java. One implementation of threads showed a factor of 30 diierence in run time on some benchmark programs. This article describes an eecient implementation of monitors for Java as used in the CACAO just-in-time compiler. With this implementation the thread overhead is less than 40% for typical application progr...

متن کامل

Report of the ASTEC project : HiPE - High Performance Erlang

The scientific goals of HiPE for the period 2001-2003 have been described in detail in the HiPE proposal which is electronically accessible here. To make this document relatively self-contained the goals are also very briefly outlined below: 1. Complete integration of the HiPE compiler within Erlang/OTP 2. Develop a HiPE compiler for Intel x86 machines 3. Port Open Source Erlang to 64-bit hardw...

متن کامل

Adding 64-bit Pointer Support for a 32-bit Run-time Library

has extended the address space accessible to applications beyond the traditional 32-bit address space. This new address space is referred to as 64-bit virtual memory and requires a 64-bit pointer for memory access. The operating system has an additional set of new memory allocation routines that allows programs to allocate and release 64-bit memory. In OpenVMS Alpha version 7.0, this set of rou...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Concurrency - Practice and Experience

دوره 9  شماره 

صفحات  -

تاریخ انتشار 1997